const App = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    prizes: [],
    isLottery: false,  // 奖品
    showPopup: false, // 奖品图片弹出层
    ownPrizes: [],
    record: '',
    qrcode: '',
    recordList: [],
    active: [], 
    options: [],

    // 默认样式
    defaultStyle: {
      fontColor: '#d64737',
      fontSize: '26rpx'
    },
    blocks: [
      { padding: '13px', background: '#4568ea' }
    ],
    // 抽奖按钮
    buttons: [
      { radius: '50px', background: '#9cb2fe' },
      { radius: '45px', background: '#fff' },
      { radius: '41px', background: '#ffce5b', pointer: true },
      {
        radius: '35px', background: '#ffdea0',
        fonts: [{ text: '开始\n抽奖', fontSize: '30rpx', top: -18 }]
      }
    ],
  },

  /**
   * 开始抽奖
   */
  startLottery() {
    let _this = this;
    // 已抽奖
    if (_this.data.isLottery) {
      _this.setData({
        showPopup: true, // 奖品图片弹出层
      })
      return false
    }
    // 获取组件实例
    const $lucky = _this.selectComponent('#myLucky');
    // 开始旋转
    $lucky.play();
    // 请求抽奖接口
    App._get('lottery.active/run', {
      active_id: _this.data.options.active_id || 1
    }, result => {
      // 需要绑定手机
      if (result.data.action && result.data.action == 'phone') {
        App.navigationTo('pages/phone/index');
        return false;
      }
      // 停止转动
      $lucky.stop(result.data.ownPrizes.p_index);
      _this.setData({
        ownPrizes: result.data.ownPrizes,
        qrcode: result.data.ownPrizes.image ? result.data.ownPrizes.image.file_path : '',
        record: result.data.record,
      })
    }, () => {
      $lucky.stop(_this.data.prizes.length - 1);
    });
  },

  /**
   * 抽奖结束
   */
  endLottery(event) {
    let _this = this;
    _this.setData({
      showPopup: true, // 奖品图片弹出层
      isLottery: true,
      buttons: [
        { radius: '50px', background: '#eee' },
        { radius: '45px', background: '#fff' },
        { radius: '41px', background: '#aaa', pointer: true },
        {
          radius: '35px', background: '#999',
          fonts: [{ text: '您已\n抽奖', fontSize: '30rpx', top: -18 }]
        }
      ],
    })
  },

  /**
   * 获取地理位置
   */
  getLocation() {
    let _this = this
    wx.getLocation({
      type: 'wgs84',
      success(res) {
        App._post_form('user/location', {
          latitude: res.latitude,
          longitude: res.longitude,
          speed: res.speed,
          accuracy: res.accuracy,
        }, result => { })
      },
      fail() {
        App.showError('请在右上角的设置打开“允许使用我的地理位置”');
      },
    })
  },

  /**
   * 获取活动详情
   */
  getDetail() {
    let _this = this;
    App._get('lottery.active/detail', {
      active_id: _this.data.options.active_id || 1
    }, result => {
      // 格式化奖品
      _this.formatPrizes(result.data.prizes);
      // 活动状态
      _this.setData({
        isLottery: result.data.isLottery,
        ownPrizes: result.data.ownPrizes,
        record: result.data.record,
        qrcode: result.data.ownPrizes.image ? result.data.ownPrizes.image.file_path : '',
        recordList: result.data.recordList,
        active: result.data.active,
      });
      // 按钮样式
      if (result.data.isLottery) {
        _this.setData({
          buttons: [
            { radius: '50px', background: '#eee' },
            { radius: '45px', background: '#fff' },
            { radius: '41px', background: '#aaa', pointer: true },
            {
              radius: '35px', background: '#999',
              fonts: [{ text: '您已\n抽奖', fontSize: '18px', top: -18 }]
            }
          ],
        });
      }
    });
  },

  /**
   * 获取二维码接口
   */
  getCode() {
    let _this = this;
    wx.showLoading({title: '加载中',mask:true})
    App._get('lottery.prizes/qrcode', {
      record_id: _this.data.record.record_id
    }, result => {
      wx.hideLoading();
      _this.setData({
        qrcode: result.data.qrcode
      })
    });
  },

  /**
   * 格式化奖品
   */
  formatPrizes(prizes) {
    let _this = this;
    let tempPrizes = [];
    prizes.forEach((item, index) => {
      tempPrizes.push({
        title: item.p_title,
        background: index % 2 == 0 ? '#ffffff' : '#9cb2fe',
        fonts: [{ text: item.p_text, top: '18%' }]
      });
    });
    _this.setData({ prizes: tempPrizes });
  },

  /**
   * 抽奖礼品弹框 关闭
   */
  closeLucklyPop: function () {
    let _this = this;
    _this.setData({
      showPopup: false
    })
  },

  /**
   * 跳转到女神节优惠活动商品页面
   */
  goToNavActivity() {
    let _this =this;
    App.navigationTo(_this.data.ownPrizes.active.jump_link);
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let _this = this;
    _this.setData({
      options
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    let _this = this;
    // 获取活动详情
    _this.getDetail();
    // 检查登录
    if (App.checkIsLogin()) {
      // 获取地理位置
      _this.getLocation();
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})